Metadata-Version: 2.1
Name: better-cryptography
Version: 0.0.11
Summary: A module for encryption and information security operations.
Home-page: UNKNOWN
Author: Wyatt Garrioch
Author-email: w.garrioch456@gmail.com
License: UNKNOWN
Keywords: python,encryption,AES,information security
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Education
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: POSIX :: Linux
Description-Content-Type: text/markdown

# Contents #
 - `better-cryptography` contains Python scripts for implementing various encryption methods (currently supports Blowfish and AES file encryption and RSA string encryption) and various logging needs.


 # FAQ ##

  ## How do I install and import the package? ##
  Install through the `pip3 install better-cryptography` command. Import via `import better_cryptography` or `from better_cryptography import ...`


  ## How do I report a bug? ##
  Email me at w.garrioch456@gmail.com.



  ## Syntax 
  
   - ## Ciphers Class methods
      - `hash(StringToHash)`
        Takes a string and returns a hex-encoded SHA 256 hash.
      - `change_encrypting_password(old_password, new_password)`
        Takes 2 arguements, `old_password` and `new_password`, and changes the 
        class's `password` attribute.
      - ## RSA Methods
        - `generate_RSA_keys()`
          Returns a RSA key pair in a tuple `(public_key, private_key)`
        
        - `RSA_encrypt_str(public_key, string)`
          Takes 2 arguements, a `public key` and the string to be encrypted. 
          Returns the encrypted string.
        
        - `RSA_decrypt_str(private_key, encrypted_str)`
          Takes 2 arguements, a `private key` and an encrypted string.
          Returns a decrypted string.

     - ## AES Methods
       
       - `generate_symmetric_key(salt)`
         Takes a single argument, `salt`, and returns a symmetric encryption key.
         If `salt` is not provided, the method generates a random salt and 
         returns a tuple `(key, salt)`.
         
        - `AESencrypt_file(path)`
          Takes a file path and encrypts with AES using a key generated with a random 
          salt and the class `password` attribute. Will not encrypt if the file is already encrypted.
        - `AESdecrypt_file(path)`
          Takes a file path and decrypts it using the class `password` attribute and the salt written to the file. Will not decrypt if the file was encrypted with a different encryption algorithm, different key, or was already decrypted.
      - ## Blowfish Methods
      
        - `BLOencrypt_file(path)`
        Takes a file path and encrypts it using the Blowfish algorithm. Will not encrypt if file is already encrypted.
        
        `BLOdecrypt_file(path)`
        Takes a file path and decrypts it using the Blowfish algorithm. Will not decrypt if the file was encrypted with a different encryption alogrithm, different key, or if the file was already decrypted.
    
    - ## Log Class Methods
       - `log_exists()`
       Checks to see if a `log.log` file exists for the current user. Returns a boolean value.
       
       - `create_log()`
       Creates a `log.log` file for the current user.
       
       - `audit(keywords)`
       Takes a list of keywords and removes lines in the current `log.log` file that contain those keywords.
       
       - `log(logstring)`
       Takes a string to log into the `log.log` file and writes it.
       
       - `change_user(new_user)`
       Changes the class atrribute `username` to the `new_user` parameter.

